import React, { useCallback, useEffect } from "react";
import { useForm } from "../../context/metadata-context";
import HtmlText from "../HtmlText";
import Input from "../Input";
import InputNumber from "../InputNumber";
import TextArea from "../TextArea";
import { InjectProvider, useInject } from "../../context/inject-context";

/**   
 * 计算字段默认配置
*/
let defaultConfig = {
    //这一批属性来源 tplData.form.data_control （步骤权限）
    //"code": "jisuan2",//字段code
    // "name": "计算2",
    // "type": "calculation",
    // "is_show": true,//步骤权限-显示
    // "is_editable": true,//步骤权限-编辑
    // "is_required": false,//步骤权限-必填
    
    //这一批属性来源 tplData.form.form_meta_data （表单设计器）
    // "designProps": {
      // "code": "jisuan2",//字段code
      // "name": "计算2",//字段默认名称
      // "ui": "wfd_calculation",//设计器依赖的自定义字段类型
      // "title": "计算2",//字段展示名称
      // "layout": "control_layout_leftRight",
      // "groupTitle": "",
      // "byTableGroupTitle": false,
      // "defaultValue": "",
      // "title_w": 85,//列宽
      // "text": "请输入"//字段placeholder
    // },
    // "isUsed": false,//主表才有，不知道干什么的，前端重构前后版本都没用上

    //这一批属性来源 tplData.form.data_define （业务对象）
    "show_type": "number",//字段显示显示类型
    // "show_type_name": "数值",//字段显示类型中文名
    // "props": {
      // "expression": "[main.jisuan1]",//计算字段表达式
      // "is_thousandth": false,//是否开启千分位-数值类型才生效
      // "percentage": false,//是否开启百分比单位-数值类型才生效
      // "precision": 2,//小数位-数值类型才生效
      // "default_value": "",//计算字段默认值
      // "default_text": "",//计算字段默认文本
      // "range": [
      //   "-99999999999",
      //   "99999999999"
      // ],//一维数组，第1个值为最小值，第2个值为最大值 ["-99999999999","99999999999"]
      // "functions": {
      //   "APIEVAL": {
      //     "onlyForPlanSystem": {
      //       "url": "/flowinstance/agent/calc-proxy?id=only-for-plan-system",
      //       "mobile_url": "/mobile/agent/calc-proxy?id=only-for-plan-system",
      //       "return_type": "string",
      //       "mode": "1",
      //       "js_function": "",
      //       "id": "only-for-plan-system"
      //     }
      //   }//计划系统的扩展函数
      // }//扩展函数，用于个性化计算，不同的系统会有不同的扩展函数
    // },
    // "type_name": "计算",
    
    //来源 tplData.form.defaultValueConf
    // "default": null//默认值
  }

//计算字段组件
export default function Calculation({ cell, field, rowIndex }) {

  //历史数据|脏数据兼容
  if(cell?.show_type === undefined){
    cell.show_type = defaultConfig.show_type;//没有show_type属性时，默认把计算字段设置为数值类型
  }
  let component = null;
  let show_type = cell?.show_type; //计算字段显示类型
  if (show_type === "html_text") {
    //html类型
    component = (
      <InjectProvider value={{ isEditable: false }}>
        <HtmlText cell={cell} field={field}></HtmlText>
      </InjectProvider>
    );
  } else if (show_type === "number") {
    //数值类型
    component = <InputNumber cell={cell} field={field}></InputNumber>;
  } else if (show_type === "single_text") {
    component = <Input cell={cell} field={field}></Input>;
  } else if (show_type === "multiline_text") {
    //多行文本
    component = <TextArea cell={cell} field={field}></TextArea>;
  }

  return component;
}
